System and method for creating and posting media lists for purposes of subsequent playback

ABSTRACT

A method and apparatus for creating and posting media is provided. For example, the invention allows a user to quickly create, signal process, encode, and transfer media files to a server for storage, posting, distribution, and retrieval. Thus, media such as audio, video, display, photo, spreadsheet, Web Clips, and HTML pages can be combined into a media file for uploading to a server and accessed from listings posted at web sites. In accordance with embodiments, a user downloads and installs a plug-in at the user&#39;s client computer. The user then registers and logs onto the server to perform various tasks. For example, the user can create a combined audio and photo media file at the client computer, in accordance with server based control parameters received from the system server. The plug-in then allows the user to perform digital signal processing and encoding of the media file at the client computer. After the file is encoded, it may be uploaded to a server for storage, posting, distribution, and retrieval. A file management system provides copies and listings of the file to other servers and web sites as permitted. Thus, other user having access to the database or web site lists via other client computers may select the file for retrieval. In accordance with another aspect of the invention, an information management system provides file and file list rankings based upon selection or click through of files and file listings.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. application Ser. No.12/272,360 now U.S. Pat. No. 8,015,263, filed on Nov. 17, 2008,incorporated herein by reference, which is a continuation of U.S.application Ser. No. 11/431,911, now U.S. Pat. No. 7,472,175, filed onMay 10, 2006, incorporated herein by reference, which is a continuationof U.S. application Ser. No. 09/710,654, now U.S. Pat. No. 7,069,310,filed on Nov. 10, 2000, which is also incorporated herein by reference.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to the generation, transfer, and postingof media data in a computer network environment. More particularly, theinvention relates to a client computer based system for creating,processing, encoding, and transferring media files for server basedstorage, posting, distribution, and retrieval.

2. Background Art

The development of computer technology, computer networks and theInternet has brought about a need for better ways to create, manage anddisseminate files. The advancement of the Internet market has onlyincreased this need and allowed providers of such services to maintain aviable business.

However, using current technology, the creation, preparation, managementand dissemination of files (e.g., audio, visual media and/orpresentation files) over the Internet is a tedious and inefficientprocess for the typical user. For instance, in order to disseminate anaudio or visual presentation over the Internet, a number of steps arerequired. In addition, many parts of the process require specializedknowledge that many computer users do not have.

Using current systems, a user must first create or record an audio orvideo file live using a microphone and/or as a compilation of materialthat may include recordings made live as well as prerecorded offerings,including offerings from various potential inputs. All of these sourcesmust be mixed together into a single recording with the volume andrecording level controlled appropriately for each of the components.While programs exist for accomplishing this task, they require a degreeof expertise on the part of the user.

In addition, recorded audio files can be digitally signal processed tooptimize the quality of the sound using digital signal processing.However, such processing can require many steps including multi-bandvoice-optimized compression where compression reduces selected signalinput (e.g. audio analog compression, not to be confused with datacompression or encoding). Current systems also provide a way to optimizeother types of files (e.g., video, audio, etc.) using digital or analogoptimization techniques. For example, in order to create professionalquality media files, these steps are generally not optional and thusfailure to perform them put a web broadcaster at a competitivedisadvantage as compared to one who does perform them.

Also, in order to use a file with certain software applications, thefile is usually converted into a file format, such as Real Audio™, thatcan be replayed by that application. File conversion may also berequired when the target application is a web browser. For instance, ifthe intended recipient is a web browser, the file is encoded into aformat (e.g., WAV) that the web browser or a help application associatedwith the web browser is capable of playing. The programs that exist toaccomplish this encoding require a degree of expertise on the part ofthe user.

Furthermore, media files uploaded to a server have little in the way ofthe capability to incorporate links to other web sites as part of themedia file or presentation. Current systems, for example, lack a way forusers to post parts of a presentation on different servers in order toutilize servers with various capabilities (e.g., RealServer™). If partsof the presentation are posted on different servers, the server musttypically be provided with the capability to download all of the filesassociated with the presentation to the audience upon request. Onceagain, the steps require user intervention to accomplish tasks thatrequire expertise. Furthermore, these tasks are time consuming and theprocess of editing or modifying a media file or presentation includesrepeating the same steps as above.

Another limitation inherent in current systems is that once the usergenerates a media file, there is no simple mechanism for depositing themedia files into a dynamic environment (e.g., a list that changesaccording to a set of criteria or behaviors established by the user).For example, users may send files they create to a server, but the priorart does not have a way for the posting user to sequence the filesaccording to a series of dynamic attributes. Users cannot, for example,define the type of files that are to be placed on the server where thefiles that are on the server are associated with a list that changesaccording to criteria established by the user. Thus, there is a need fora system that accomplished these objectives by providing the user with adynamic environment in which to upload files.

It is apparent that the current procedures to create, prepare, manageand disseminate media files and presentations over the Internet arelengthy and tedious, requiring a high level of knowledge of a number ofcomputer programs for processing each step. The process is so tediousbecause each step typically requires the use of a different computerprogram and the user must take the output of one program and feed itinto the next program.

Moreover, these tasks are currently performed as individual steps inseparate programs on servers rather than on the user's computer. Itwould be more efficient for users to perform as many of these steps aspossible on their own computers or clients, rather than attempt toperform the processing using software provided for them on a server.

For example, a user may have to upload a .WAV file to one server forsignal processing and know how to operate the signal processing for thatserver. The user will then have to load the file to another server forencoding and know how to operate that program as well. After that, theuser will have to load the completed file to a third server fordistribution and must know how to use the system on that third server aswell.

Therefore, there is a need for a simple, inexpensive way to create,process, encode, upload, post and distribute seamless media files andpresentations while requiring minimal creator input, expertise, andtime. Hence, a system is needed that runs on a user's local PC and issuitable for users who are not experts in various media recording,processing, encoding, transmitting, and server based software packages.

SUMMARY OF THE INVENTION

The present invention provides a method and apparatus for creating andposting media. Embodiments of the invention provide a convenient processfor a user to quickly create, signal process, encode, and transfer mediafiles to a server for storage, posting, distribution, and retrieval. Forexample, audio, video, display, photo, database, spreadsheet, voicemessages, Web Clips, pictures, HTML pages, attachments, templates,and/or combinations of such data can be combined into a media file foruploading to a server and accessible from a listing posted at a website.

In accordance with an embodiment of the present invention, a useraccesses a system server to download a plug-in and register as a user.After downloading the plug-in, the plug-in is installed. The user maythen log into the server where the user is given multiple options. Forexample, the user can “create” a media file using the create command. Ifthe user selects the create command, server based control is initiatedand the plug-in continues to record or receive media file at theplug-in, in accordance with the control parameters received from thesystem server.

For example, a user may record audio, video, photo, and/or displayinformation options using the plug-in or other systems. For example, theplug-in may provide a user with a system for recording audio informationusing a PC base microphone and video input. Alternatively, a media filemay be recorded using another method, or previously recorded andaccessed by the plug-in.

Also, in accordance with another aspect of the invention, once the plugin has access to a media file, the plug-in performs digital signalprocessing upon that media file. In addition, the plug-in encodes themedia file. After a file is encoded, it may be uploaded to a server forstorage, posting, distribution, and retrieval from other clientcomputers.

According to an embodiment of the invention, recording (e.g. settinglevels, recording, playback, etc), signal processing of the generatedfile, RealAudio encoding, and upload to a server can be done with as fewas 3 clicks (e.g. record/stop/upload).

Upon successful upload of a file, a file management system providescopies and listings of the file to other servers and web sites asapproved by the creator of the file and the owner of the servers and/orsite owners. For example, once a file is uploaded, the system thenincorporates the file information into one or more web site lists and/orserver based database. Once a file is incorporated into the databases,any user having access to a database or list, may select that file forretrieval or playback. Hence, the invention allows for media files to bestored to and accessed from one location (e.g. an Internet server) thatis accessible from various locations (e.g. Internet clients via anInternet web site).

In accordance with another aspect of the invention, an informationmanagement system provides file and file list rankings based uponselection or click through of web page listing and/or desired files.Thus, for example, information relating to popular selections and listscan be tracked and recorded by the system in order to provide listand/or file ratings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of an example of a general purpose computersystem that can be used for implementing the invention, in accordancewith an embodiment of the invention.

FIG. 2 is a block diagram of a general Internet or client/serverenvironment that can be used for implementing the invention, inaccordance with an embodiment of the present invention.

FIG. 3 is a block diagram of a method and apparatus for creating andposting media system implemented in an Internet or client/serverenvironment, showing a client systems, servers, a data storage medium,and their related connections, in accordance with an embodiment of thepresent invention.

FIG. 4 is a flow diagram that illustrates the process used by the systemto create and post media, in accordance with an embodiment of thepresent invention.

FIG. 5 is a flow diagram that illustrates the process used by the systemto perform digital signal processing at the plug-in, in accordance withan embodiment of the present invention.

FIGS. 6 a and 6 b are flow diagrams that illustrate the process used bythe system to upload or transfer a file to the server, in accordancewith an embodiment of the present invention.

FIGS. 7 a and 7 b are flow diagrams that illustrate the process used bythe system to provide server based control of the plug-in, in accordancewith an embodiment of the present invention.

FIG. 8 is a flow diagram that illustrates the process used by the systemto provide a file management system, in accordance with an embodiment ofthe present invention.

FIG. 9 is a block diagram that illustrates a method and apparatus fordistributing media file content to users over a network of computers, inaccordance with an embodiment of the present invention.

FIGS. 10 a and 10 b are flow diagrams that illustrate the process usedby the system to provide an information management system for givingfile and file list rankings, in accordance with an embodiment of thepresent invention.

FIG. 11 is a block diagram that illustrates representation ofinformation mediagrams used in the invention, in accordance with anembodiment of the present invention.

DETAILED DESCRIPTION

The present invention provides a method and apparatus for providing asystem for creating and posting media. In the following description,numerous specific details are set forth in order to provide a morethorough understanding of the present invention. It will be apparent,however, to one skilled in the art, that the present invention may bepracticed without these specific details. In other instances, well-knownfeatures have not been described in detail in order not to unnecessarilyobscure the present invention. Hereinafter, the term “system” is used torefer to a device and/or a method for performing a function.Furthermore, hereinafter, use of the term “media”, “audio”, “video”,“data”, or “data files” shall comprise various types of media includinganalog and digital audio, video, database, and display information ordata.

Embodiments of the invention provide a convenient system for the user tocreate, signal process, encode, and transfer a media file (e.g. an audiofile) to a server for storage, distribution, and retrieval from aposting. For example, a system can be implemented using a plug-ininstalled on a general purpose computer for creating RealAudiorecordings with client-side processing, and automatically hosting thoserecordings on a computer network server and posting a reference to therecording on web site lists.

Embodiment of General Purpose Computer Environment

FIG. 1 is a block diagram of an example of a general purpose computersystem that can be used for implementing the invention, in accordancewith an embodiment of the invention. For example, an embodiment of theinvention can be implemented as computer software in the form ofcomputer readable program code executed on a general purpose computersuch as the computer 100 or as system comprising a general purposecomputer 100. Hereinafter, the term “system” is used to refer to adevice and/or a method for performing a function.

Referring to FIG. 1, a keyboard 110 and mouse 111 are coupled to abi-directional system bus 118 (e.g., PCI, ISA or other similararchitecture). The keyboard and mouse are for introducing user input tothe computer system and communicating that user input to centralprocessing unit (CPU) 113. Other suitable input devices may be used inaddition to, or in place of, the mouse 111 and keyboard 110. I/O(input/output) unit 119 coupled to bi-directional system bus 118represents possible output devices such as a printer or an A/V(audio/video) device.

Computer 100 includes video memory 114, main memory 115, mass storage112, and communication interface 120. All these devices are coupled to abi-directional system bus 118 along with keyboard 110, mouse 111 and CPU113. The mass storage 112 may include both fixed and removable media,such as magnetic, optical or magnetic optical storage systems or anyother available mass storage technology. The system bus 118 provides ameans for addressing video memory 114 or main memory 115. The system bus118 also provides a mechanism for the CPU to transferring data betweenand among the components, such as main memory 115, video memory 114 andmass storage 112.

In one embodiment of the invention, the CPU 113 is a microprocessormanufactured by Motorola, such as the 680X0 processor, an Intel PentiumIII processor, or an UltraSPARC processor from Sun Microsystems.However, any other suitable processor or computer may be utilized. Videomemory 114 is a dual-ported video random access memory. One port of thevideo memory 114 is coupled to video accelerator 116. The videoaccelerator device 116 is used to drive a CRT (cathode ray tube), andLCD (Liquid Crystal Display), or TFT (Thin-Film Transistor) monitor 117.The video accelerator 116 is well known in the art and may beimplemented by any suitable apparatus. This circuitry converts pixeldata stored in video memory 114 to a signal suitable for use by monitor117. The monitor 117 is a type of monitor suitable for displayinggraphic images.

The computer 100 may also include a communication interface 120 coupledto the system bus 118. The communication interface 120 provides atwo-way data communication coupling via a network link 121 to a network122. For example, if the communication interface 120 is a modem, thecommunication interface 120 provides a data communication connection toa corresponding type of telephone line, which comprises part of anetwork link 121. If the communication interface 120 is a NetworkInterface Card (NIC), communication interface 120 provides a datacommunication connection via a network link 121 to a compatible network.Physical network links can include Ethernet, wireless, fiber optic, andcable television type links. In any such implementation, communicationinterface 120 sends and receives electrical, electromagnetic or opticalsignals which carry digital data streams representing various types ofinformation and media (e.g. audio and video data).

The network link 121 typically provides data communication through oneor more networks to other data devices. For example, network link 121may provide a connection through local network 122 to a host computer123 or to data equipment operated by an Internet Service Provider (ISP)124. ISP 124 in turn provides data communication services through theworld wide packet data communication network now commonly referred to asthe “Internet” 125. Hereinafter, “the Internet” will be used to refer tothe Internet itself as well as other types of Intranets, networks,distributed servers, or client/server architectures.

Local network 122 and Internet 125 both use electrical, electromagneticor optical signals which carry digital data streams to files. Thesignals through the various networks and the signals on network link 121and through communication interface 120, which carry the digital data toand from computer 100, are exemplary forms of carrier waves fortransporting the digital information.

The computer 100 can send messages and receive data, including programcode, through the network(s), network link 121, and communicationinterface 120. In the Internet example, server 126 might transmit arequested code for an application program through Internet 125, ISP 124,local network 122 and communication interface 120.

The Internet/Client/Server

Computers and computer networks are used to exchange information,perform transactions, and provide entertainment in many fields. Duringthese events, the exchange of data between computers typically occursbetween a “server application” that provides information or services,and a “client application” or device that receives the providedinformation and services. Multiple server applications are sometimesavailable on a “system server” such as a single computer server thatprovides services for multiple clients. Alternatively, distributedserver systems allow a single client to obtain services fromapplications residing on multiple servers. For example, in currentdistributed server systems, client applications or plug-ins are able tocommunicate with server applications executing on the same computersystem or on another computer system accessible via a network, forinstance via the Internet.

The Internet is a worldwide network of interconnected computers. AnInternet client computer accesses a computer on the network via anInternet provider. An Internet provider is an organization that providesa client (computer) with access to the Internet (via analog telephoneline or Integrated Services Digital Network line, for example). A clientcan, for example, read information from, download a file from, or sendan electronic mail message to another computer/client using theInternet.

To retrieve a file or service on the Internet, a client must typicallysearch for the file or service, make a connection to the computer onwhich the file or service is stored, and download the file or access theservice. Each of these steps may involve a separate application andaccess to multiple, dissimilar computer systems (e.g. computer systemshaving operating different systems). The World Wide Web (WWW) wasdeveloped to provide a simpler, more uniform means for accessinginformation on the Internet.

The components of the WWW include browser software, network links,servers, and WWW protocols. The browser software, or browser, is a toolfor displaying a user-friendly interface (i.e., front-end) thatsimplifies user access to content (information and services) on the WWW.Browsers use standard WWW protocols to access content on remotecomputers running WWW server processes. A browser allows a user tocommunicate a request to a WWW server without having to use the moreobscure addressing scheme of the underlying Internet. A browsertypically provides a graphical user interface (GUI) for displayinginformation and receiving input. Examples of browsers currentlyavailable include Netscape Navigator and Communicator, and MicrosoftInternet Explorer.

WWW browsers and servers communicate over network links usingstandardized messages formats called protocols. The most common modernprotocol is the TCP/IP (Transmission Control Protocol/Internet Protocol)protocol suite. The protocols are based on the OSI (Open SystemsInterconnect) seven-layered network communication model. WWW messagesare primarily encoded using Hypertext Transport Protocol (HTTP). HTTPinstantiates the (top) Application layer of the OSI model. Applicationlayer protocols facilitate remote access and resource sharing and aresupported by the reliable communications ensured by the lower layers ofthe communications model. Therefore HTTP simplifies remote access andresource sharing between clients and servers while providing reliablemessaging on the WWW.

Information servers maintain the information on the WWW and are capableof processing client requests. HTTP has communication methods that allowclients to request data from a server and send information to theserver.

To submit a request, the client browser contacts the HTTP server andtransmits the request to the HTTP server. The request contains thecommunication method requested for the transaction (e.g., GET an objectfrom the server or POST data to an object on the server). The HTTPserver responds to the client by sending a status of the request and therequested information. The connection is then terminated between theclient and the HTTP server.

A client request, therefore, consists of establishing a connectionbetween the client and the HTTP server, performing the request, andterminating the connection. The HTTP server typically does not retainany information about the request after the connection has beenterminated. That is, a client can make several requests of an HTTPserver, but each individual request is treated independently of anyother request.

WWW employs an addressing scheme that uniquely identifies Internetresources (e.g., HTTP server, file, or program) to clients and servers.This addressing scheme is called the Uniform Resource Locator (URL). AURL represents the Internet address of a resource on the WWW. The URLcontains information about the protocol, Internet domain name andaddressing port of the site on which the server is running. It alsoidentifies the location of the resource in the file structure of theserver.

HTTP provides a mechanism of associating a URL address with active text.A browser generally displays active text as underlined and color-coded.When activated (by a mouse click, for example) the active text causesthe browser to send a client request for a resource to the serverindicated in the text's associated URL address. This mechanism is calleda hyperlink. Hyperlinks provide the ability to create links within adocument to move directly to other information. A hyperlink can requestinformation stored on the current server or information from a remoteserver.

If the client requests a file, the HTTP server locates the file andsends it to the client. An HTTP server also has the ability to delegatework to gateway programs. The Common Gateway Interface (CGI)specification defines a mechanism by which HTTP servers communicate withgateway programs. A gateway program is referenced using a URL. The HTTPserver activates the program specified in the URL and uses CGImechanisms to pass program data sent by the client to the gatewayprogram. Data is passed from the server to the gateway program viacommand-line arguments, standard input, or environment variables. Thegateway program processes the data and returns its response to theserver using CGI (via standard output, for example). The server forwardsthe data to the client using the HTTP.

When a browser displays information to a user it is typically as pagesor documents (referred to as “web pages”). The document encodinglanguage used to define the format for display of a Web page is calledHypertext Markup Language (HTML). A sever sends a Web page to a clientin HTML format. The browser program interprets the HTML and displays theWeb page in a format based on the control tag information in the HTML.

FIG. 2 is a block diagram of a general Internet or client/serverenvironment that can be used for implementing the invention, inaccordance with an embodiment of the present invention. For example, anembodiment of the invention can be implemented as computer software inthe form of computer readable program code executed on a server computersuch as the computer 202 illustrated in FIG. 2. Additionally, in anembodiment, the system can be implemented as a component of a networksystem such as a server computer 202 connected to the Internet 200 andaccessible to client computers 203. In further embodiments, theinvention can be implemented as is or on various other networks ornetwork systems as appropriate.

For example, FIG. 3 is a block diagram of a method and apparatus forcreating and posting media system implemented in an Internet orclient/server environment, showing a client systems, servers, a datastorage medium, and their related connections, in accordance with anembodiment of the present invention. In a network environment, theinvention can be implemented as computer software in the form ofcomputer readable program code executed on a server computer such as 302illustrated in FIG. 3. For instance, a “plug-in” can be downloaded to aclient and used to interact with a server. Examples of plug-ins comprisehelper applications which are invoked by a browser to handle files of aspecific standard file format type, such as Multi-purpose Internet MailExtensions (MIME). MIME is a developing standard (e.g. specified in RFC1521) and MIME compliant mailers allow a user to encode an object andspecify a viewer type for that object, and then mail the object tosomeone who has neither the proper decoder nor viewer on their ownMIME-compliant system.

Referring to the embodiment shown in FIG. 3, the system can beimplemented as components of a network system such as a computer clientcreator user 310 coupled via network connections 320 to a computer datastreaming server 360 and an application server 330. In turn, servers 330and 360 are coupled via network connections 340 to a data storage device350. In addition, user client systems 390 (e.g. users 1 3) are coupledto the data streaming server 360 via network connection 370.

Thus, for instance, client PC's 310 and 390 s could be connected to theInternet 320 and 370 in order to access server computers 360 and 330which in turn provide access via a local network 340 to media filestorage 350. In addition, the system servers, 360 and 330, provide auser with access to the database of media files 350 from a multitude oflocations 390. Couplings, for example, via network connections 320, 340,and 370 may comprise or incorporate any web browser, such as Mosaic,Netscape Navigator, or Internet Explorer. Hence, the system servers maybe accessed through an Internet web site and the computer network may bethe Internet, however, various other appropriate bases for the system(e.g. servers) and computer networks may be used with the invention asappropriate.

According to an embodiment for example, the system comprises a clientmachine 310 (a general-purpose computer, PC, cell phone, etc.), aconnecting apparatus allowing the client machine to communicate throughcommunication means 302 (internet, LAN, WAN, wireless, etc.) with aserver, where server means an electronic device able to communicatethrough communication lines. The servers are not limited to a singlemachine. For instance a server may include a cluster of machinesconnected to each other or not within one or more sub-networks 340.Server may also comprise necessary routers, repeaters, firewalls and allmeans that allow electronic devices to function and provide networkfunctionality such as traffic load balancing, re-routing, failover andany other means that allow these devices to operate and implement anyconnection or system required functionality.

For example, servers may use software or hardware that enables them totransmit and receive encrypted data for enhanced communication security.In accordance with an embodiment of the present invention, some serversmay be dedicated to communicating with the creator user, for clarity werefer to these servers as application servers. Other servers may bededicated to other tasks, for example, involving informationdistribution to creator users 310 and/or other users 390.

According to embodiments, the apparatus comprises one or more datastorage devices 350. Storage devices may comprise one or more computerhardware storage devices and/or various other means of data storage.Examples of storage devices include computer hard disks attached toservers and stand alone file systems enabled to communicate through anytype of network connection (e.g. 340). For instance a storage devicemight be a general-purpose computer having a media file library ordatabase and an association engine for associating the files withrequests and Internet web site based listings of the files.

Thus, a creator and/or system user may keep a personal database of mediafiles on a computer at home and/or in a database on a server. In such acase, an user of a PC having an audio and/or video mixing and recordingsystem may record, signal process, encode, and upload the desired mediato the server database for future use. Thus, a version of media from atany point in the recording, processing, encoding processes may be storedin the user's local computer, while the final processed version (e.g.edited, combined with other media, re-edited, condensed, and encodedfile) is uploaded and stored on the server. The computer systemsdescribed above are for purposes of example only. An embodiment of theinvention may be implemented in any type of computer system orprogramming or processing environment.

FIG. 4 is a flow diagram that illustrates the process used by the systemto create and post media, in accordance with an embodiment of thepresent invention. A user is able to create locally and then transfer toand access from a network server (e.g. an Internet repository web site)various media files. For instance, the invention allows for media filesto be stored to a network server and access via various web sites inorder to provide creators and users of such files the ability to uploadand download from various locations (e.g. network clients). Such asystem defines a process where by a user's media files can be stored andlisted to a personal web-site list location and/or listed to variousother media file listings in order to provide a social “sharing” typeenvironment for such media files. Some creators may even be considered“artists” for creating certain media file types, thus developing userswho collect the entire inventory of that creator's recordings.

According to an embodiment, the user simply creates the media file,performs any desired signal processing, encodes the file at the user'slocal computer and then connects to the Service Website or local Websiteon his personal machine and uploads the file to the Website and selectswhich web sites to list the file with. Referring to FIG. 4, the flowdescribes a use of the system in general and may begin at various steps.A first step may be accessing the server and registering as a user 402.For example, the user registers by inputting user information such asuser name, email address and provides a login name and password whichare used to authenticate with the system each time the user starts asession. A potential registrant may also begin by first downloading theplug-in 404. For example, the user downloads a plug-in (e.g. in order touse the system user needs a browser helper application, or “plug-in”).Also, the helper application may be provided on the server and user mayaccess it and download it on a load storage medium using an applicationable to transfer files across the network.

After downloading the plug-in, the plug-in is installed at step 406.During installation, the plug-in registers with the browser andgenerates a unique code that is stored in the plug-in computer's systemregistry for transmission to the server at a later time. Registrationprovides the user's browser with a code identifying the plug-in andlinking the browser to the plug-in so that during network browsing, thebrowser will invoke the plug-in whenever the browser downloads a filehaving a specific MIME type from a server. Thus, registration of theplug-in with the browser enables the browser to find the plug-in and useit as a helper application.

According to an embodiment, once the plug in is installed and the useris registered, the user may log into the server 408. For example, theuser logs in on the web site with the same user name and passwordprovided during the registration process. After logon, the system mayserve up a page that informs the user about the state of the system andgives configuration information or any other information the system isprogrammed to provide. After successful login, a user interface providesthe user with multiple options, actions, and commands to choose from.For example, the user can create and upload a media file using the“create” command 410.

According to an embodiment, once the user selects the “create” command,the browser sends a request to the server for a link initiating theserver based control process 420. Examples of server based controldetails and parameters are provided in reference to FIG. 7. Then, theplug-in continues creating media, in accordance with the server basedcontrol parameters.

According to an embodiment, after server based control is incorporated,the user may record or receive media file at the plug-in at step 430.Using the plug-in or another system, a user may record or access audio,video, photo, and/or media display control information and options. Inaddition the user may create any combination of such media as desired.

For example, the plug-in may provide a user with controls for recordingaudio information using a PC base system whereby a user may create andrecord an audio file at that time using a microphone, or from materialthat includes prior recordings. Examples of audio data input methods orsystems comprise by microphone, computer network or Internet link,telephone link, cell or other wireless network links, infra-red link,file download, keyboard input, menu selection by keyboard or mouse, aswell as various other appropriate systems. Prerecorded audio offeringsinclude input from compact disks, phone lines, tape recorders, wirelesstransmission, MIDI music players, MP3, WAV and RA files. The plug in,allows all of these sources to be mixed together into a single recordingwith the volume and recording level controlled appropriately for each ofthe components. In addition the user may create any combination of suchaudio media as desired. For example, the user can mix these variousinput sources by selecting the “Custom” input type in the plug-in andthen using a volume control panel to set the levels.

Similarly, for example, the plug-in may provide a user with controls forrecording video, photo, presentation, or display information using a PCbase system whereby a user may create and record a media file at thattime using a camera, or from material that includes prior mediarecordings. Examples of video, photo, presentation, or displayinformation data input methods or systems comprise by scanner, bar codereader, other dimensional indicia, data over computer network orInternet link, telephone link, cell or other wireless network links,infra-red link, file download, scanner, keyboard input, menu selectionby keyboard or mouse, as well as various other appropriate systems. Inaddition the user may create any combination of such visual media asdesired.

For instance, the user may select one of the above mentioned data inputmethods and/or types from a menu. Thus, a creator may select to enterphoto media data from scanning a photo via a computer scanner. In thenext step, the user inputs the scanned information into the system.Then, the creator may desire to attach audio to the scanned in photousing a microphone. Thus, the user selects audio input for the photo viamicrophone. The system now asks the user to input the audio information.After the audio data is input, the system associates the digital photoand audio data into a single media file in accordance with the servercontrol parameters. As a result, the creator now has an audio and visualmedia file that can be used in a presentation. Although a system aspecific example of inputting or recording is media files describedabove, a variety of appropriate input systems, fields, inputs, datatypes and input queries may be used in the invention at step 430.Embodiments of the invention also comprise the ability to do complexpreprocessing of the media before sending it to the server. So, forexample, the client plug-in performs complex and computationallyintensive process such as the cropping and resizing of a photo. Byhaving such intensive processing offloaded to the client, the systemruns more efficiently.

In addition, embodiments of the invention provide for the client toprovide the user with information regarding creation of improper mediafile data or formats, for instance when the recorded or createdinformation is of an improper format or not in accordance with serverbased control parameters. For example, the creation process may requiremedia processing by the client that can not be performed due toformatting problems or that the client does not have permission toupload to the server. Moreover, the client may be asking for processingof improper files, restricted files, or files that don't exist.

Once a media file is created or accessed by the plug-in, digital signalprocessing can be performed upon that media file 440. For example,recorded audio files can be digitally signal processed to optimize thequality of the sound for Internet transmission. Digital signalprocessing can require many steps including multi-band voice-optimizedcompression, where compression reduces selected signal input. Digitalsignal processing also includes sibilance, or hissing, reduction andpresence boost for intelligibility, where presence refers to creating animpression that sound is being produced by something nearby. Furtherexamples of details and parameters related to digital signal processingperformed on media file data are provided in reference to FIG. 5.

According to an embodiment, after performing digital signal processingupon that media file, the plug-in encodes the media file. Encoding ofthe media file, at the plug-in, is performed at step 450. For example,the signal processing and encoding processes performed by the plug-inwill reduce the size of the file data and encoded the reduced file datainto a standard format. The plug-in also makes a connection with thesystem server in order to download the condensed standardized file tothat server.

After a connection is made between the plug-in client and the server,the condensed encoded file may be uploaded to the server for storage,posting, distribution, and retrieval by other client computers.Referring to FIG. 4, the encoded file is uploaded, at step 460.According to an embodiment of the invention, recording (e.g. settinglevels, recording, playback, etc), signal processing of the generatedfile, RealAudio encoding, and upload to a server can be done with as fewas 3 clicks (e.g. record/stop/upload). Further examples of details andparameters related to uploading of media files are provided in referenceto FIG. 6.

Upon successful upload of a file, the file management system providescopies and listings of the file as appropriate 470. For example, once afile is uploaded, the system then incorporates the file information intoone or more lists and/or database. Further examples of details andparameters related to the file management system are provided inreference to FIG. 8.

Once a file is incorporated into the databases, any user having accessto a database or list, may select that file for retrieval or playback480. For example, a user could also opt to retrieve one of that a mediafile similar to the type of file the user wishes to create. In order tofind such a file, the user could access web page listing of filesadvertised to be the same appropriate type. From such listing, the userthen selects a file as desired. Further examples of details andparameters related to retrieval and playback are provided in referenceto FIG. 9.

Upon selection of the web page listing and/or desired file, informationrelating to those selections can be tracked and recorded by the systemin order to provide list and/or file ratings 490. Examples of detailsand parameters related to ratings are provided in reference to FIGS. 10a and 10 b.

Thus, for example, the system improves upon prior systems because itaccomplishes the automated collection of the data, combination of media,preprocessing of the media to make suitable for web presentation,encoding (for audio/video), and uploading in a unique and more efficientmanner.

FIGS. 7 a and 7 b are flow diagrams that illustrate the process used bythe system to provide server based control of the plug-in, in accordancewith an embodiment of the present invention. Here, for example, the userinitiates a new recording session by clicking on a specific browserhyperlink that causes the browser to request a command file from thesystem server. Receipt of such a command file will cause the browser toinvoke the helper application plug-in. For example, once invoked, theplug-in may connects to the provider's server and requests a controlfile.

For example, FIG. 7 a shows the process used by the system on the clientside to request control file from the server, in accordance with anembodiment of the present invention. Once the plug-in is invoked, itconnects to the provider's server and requests a control file 710 bysending a request to the application provider server. The plug-in thenchecks to see if a response from the server is received 720. Once aresponse from the server is received 730 the server proceeds bydecrypting the encrypted string in order to obtain the connectionlocation information for connection with the server 740. For example,the server's response may consist of an acknowledgement of the clientplug-in request in the form of a text string and an encrypted string.Decryption of the string gives the plug in location information, such asa URL, so that the plug-in can communicate with the server in order toupload new media files. In addition, the plug-in displays plug-in orhelper application screens 750. According to embodiments of theinvention portions of the text string and/or encrypted string are usedby the plug-in to provide the user with specific instructions and/orinformation in accordance with server based control parameters and otherrequirements and system parameters. For instance, once a connection isestablished in accordance with the connection information, the plug-inapplication proceeds by displaying a user interface enabling the user torecord or load media files and/or upload media files onto theapplication server.

FIG. 7 b is a flow diagram that illustrates the process used by thesystem on the server side to generate and provide a control filerequested by the client application, in accordance with an embodiment ofthe present invention. Here, the server checks to see if a request fromthe client is received 760. Once a request from the client is receivedthe server processes the request information 770. For example, theserver may receive a request from the client for a control file througha hypertext transfer protocol (e.g. see step 710 of FIG. 7 a). In anembodiment, the server records the information provided by the clientand uses that information to generate a control file. Informationcontained in the request may be used to gather statistics information,perform authentication or carry out various server based informationprocessing tasks. The server checks to see if the client request orrequests are permitted 780. For example, the client request may not bepermitted if the user's account is overdue or if the request is made byan unauthorized or unregistered copy of a plug-in. In such non-permittedinstances, the server will send an access denied message to the clientand may also send alternative control instructions so that the user canbe informed as to the “what, why, and how” of the denial as well aspotential cures or actions available 785.

If the client request is permitted at 780, the server then sends therequested control instructions to the client 790 (e.g. see steps 730 and740 of FIG. 7 a). For instance, the server may generate resource locatorinformation (e.g. a URL string) and send to the client an encryptedversion of this information in combination with other configurationinformation (e.g. a text string).

FIG. 5 is a flow diagram that illustrates the process used by the systemto perform digital signal processing (DSP) at the plug-in, in accordancewith an embodiment of the present invention. Here, the plug-in comprisesa digital signal processing module that processes the recoded data tooptimize the quality of the sound for transmission (e.g. transmissionacross a network or the Internet). The DSP module checks to see if adata file has been recorded 500, and if so loads the media (e.g. a fileof an audio signal) into memory and reads configuration data supplied bythe server 510 (e.g. during server based control described in FIGS. 7 aand 7 b above).

After the media is loaded into memory and the configuration data isread, the DSP module sequentially applies a data processing ormanipulation process to the file 510. If necessary, the DSP continues toapply processing or manipulation steps to the file as required by theuser, server based control, or other client, server, or system basedparameter 520. Such processing could be, for example, to be any type ofprocessing to make the media or data suitable for hosting. This could bedigital signal processing for audio and video, or some other sort ofprocessing for photos, such as cropping and resizing to fit a sizespecified by the control parameters.

The processing steps are aimed at, for example, improving the soundquality and removing components of the signal that are not perceivableby the human ear. Examples of processing methods include multibandvoice-optimized compression, where compression reduces selected signalinput. Digital signal processing also comprises sibilance, or hissing,reduction and presence boost for intelligibility, where presence refersto creating an impression that sound is being produced by somethingnearby. Bass boost can be used to create a feeling of warmth with malevoices. Normalization for the maximum output level adjusts the level ofa selection so that the highest peak is at the maximum recording levelof the medium. Other digital signal processing features include a peaklimiter that controls overload distortion, a smart expansion gate thatreduces background noise by expanding signal input and a DC offsetadjustment for cleaner encoding. A high frequency cutoff for reducedanti-aliasing effects is desirable, where aliasing refers to distortioncaused by a sampler mis-recognizing a signal sent to it that is at afrequency higher than the highest frequency that can be recorded andreproduced properly at a particular sampling rate. Upon playback, thesystem will provide a signal at an incorrect frequency (called an aliasfrequency). While the proper digital signal processing is essential forthe preparation of a high quality audio presentation, and computerprograms exist to assist with the process, the various procedures can bedifficult for those without the requisite experience.

Following digital signal processing, the system encodes the file byapplying and encoding process 540. For instance, encoding involvesconverting or translating the file data into a standard format that canbe distributed to other users and played by other media playing means.

FIGS. 6 a and 6 b are flow diagrams that illustrate the process used bythe system to upload or transfer a file to the server, in accordancewith an embodiment of the present invention. For example, FIG. 6 adescribes the client application steps involved during the uploading ofa data file. When the user issues an “upload” command through the userinterface in order to upload a file for instance, the client applicationcollects the system information necessary to perform data uploading 600.For instance, the client application obtains its unique identifier (e.g.the unique identifier generated during the installation process 406)from its execution environment's registry. The application may alsoobtain the resource locator information (e.g. URL) previously obtainedfrom the application server during the launching of the plug-in.

Next, the plug-in opens or establishes a network connection with theapplication server 605 (e.g. using the URL obtained from the server instep 740). The plug-in tests whether the connection is successful 610,and if the connection is not successful returns to 605. When aconnection is successfully established the application sends aninformation header to the server 615. The header may include, forexample, the size of the file to be transferred as read by the plug-in.The plug-in then reads data blocks containing blocks of the file data620. For instance, a block of file data may comprise a block of specificsize. The plug-in checks the connection again at step 625. If theconnection still exists, the plug-in then sends the data block to theserver 630. Next the client reports the status of the transfer to theserver 635. Embodiments also comprise the plug-in sending status of thetransfer reports to the user through the user interface. The plug-inthen checks to see if the data block currently transmitted (e.g. at 630above) is the last block to be transmitted for the current file 640. Ifthe block is not the last block, the plug-in returns to step 620 andreads data from another block. If the block is the last block for thatfile, the plug in reads the server response 645, and closes the clientserver connection. Examples of server responses comprise sending theclient a page confirming that the upload was successfully completed, apage indicating that the upload was successfully canceled, a pageindicating that the upload was not successfully. Further examples ofserver responses are provide in reference to FIG. 8.

FIG. 6 b is a flow diagram that illustrates the process used by thesystem on the server side during the transfer of a data file from theclient to the server, in accordance with an embodiment of the presentinvention. The server tests whether the connection with the client issuccessful 650. After a connection is successfully established theserver receives the information header from the client 655. The header,for example, may include plug-in information such as the plug-in uniqueidentifier, and information about the data file to be uploaded to theserver (e.g. file size). The server validates the user at step 660, forinstance, by comparing the ID received in the header received from theplug in with data in a database.

In addition, according to embodiments, the server may carry out aplurality of operations on the information received from the clientapplication. For example, the server may check the plug-in's uniqueidentifier to validate a user's rights to use a copy of the plug-in. Theserver obtains a unique identifier and uses the identifier to identifyand generate a data file name 665. The server then opens a file where itwill write the data received from the client. The server checks theconnection again at step 670. If the connection still exists, the serverwaits to receive a data block 675.

Upon receipt of a data block, the server appends the data blockinformation received from the client into a data file and stores theidentifier newly obtained into a database 680. After each block of datareceived the server checks whether the total size of data received isequal to or has exceeded the total size of the file being uploaded 682(e.g. total size of file being uploaded as previously communicated tothe server by the client at step 655). If the total data file size hasbeen reached or exceeded, the server closes the data file and stores thedata 684.

Next the server generates a file information web page 686. Such a pagemay contain, for example, a page confirming that the upload wassuccessfully completed, a page indicating that the upload wassuccessfully canceled, a page indicating that the upload was notsuccessfully. The server then sends the file information web page to theclient 690 (e.g. see server responses 645 above). Further examples offile information web pages are provide in reference to FIG. 8.

According to an embodiment of the invention, once a file has beenuploaded, a file management system provides processing so that the filemay be stored, posted, and/or retrieved. For example, following theupload of a new data file, the system stores the new file on the storagedevice 350 under the file name newly generated in step 665. The servermay also create a link to the new file at the file serving location. Thelink allows the media streaming server to access the content of the fileand serve it to various users 390. The application server also storesfile information in the database.

FIG. 8 is a flow diagram that illustrates the process used by the systemto provide a file management system, in accordance with an embodiment ofthe present invention. Following the uploading of a new file, the serverselects the allowable functions or controls for a user according to thatuser's profile 810. The invention contemplates providing one or morelevels for access by one or more users in accordance with variouspermission and control parameters. Thus, each user's access may becharacterized by a set of allowable functions and controls for that.

According to embodiments, after the allowable functions for a user aredetermined, the system generates a web page containing the graphicaluser interface controls and hyperlinks needed to access the serverfunctionality associated with those allowable functions 820. Then, theuser may choose to enter one or more types of information and/or issueone or more user commands 830. For example, the user may enterinformation describing the content of the file just uploaded. Othertypes or information may include attribute information. The server thenupdates any databases, file listings, web pages, file storage locations,and/or file or file listing libraries as necessary, as a result of, oras indicated in accordance with the user's command or informationentered 840.

In one or more embodiments of the invention, the server is capable ofgenerating one or more hyperlinks to media files 850. For example, theuser is able to write a message and enter the email address of one ormore correspondents. Upon the user issuing a command to the server, thesystem processes the message and adds media file hyperlink informationinto the message. The system may, for example, insert hyperlinks to thelocation of the media file into the message. The system then transmitsmessages with links to the creator user's specified media files,allowing the recipient of the message to easily access those mediafiles. The links to the file locations are those created and madeavailable on the media-streaming server.

The invention contemplates providing the user access to a variety offunctionalities. In an embodiment of the present invention the user isable to input attributes associated with media files. The system usessuch attributes to determine, for example, the user's preferred locationfor posting hyperlinks to the media files and/or the user's restrictedlocations. Other types of functionality include but not limited toposting a message onto a messaging system, or any other medium forcommunicating information.

FIG. 9 is a block diagram that illustrates a method and apparatus fordistributing media file content to users over a network of computers, inaccordance with an embodiment of the present invention. For example, asdescribed in FIG. 8, step 850, a creator user may obtain hyperlinks datato media files from the application server. Then, a creator user mayinclude those hyperlinks a web page and uploads the web page 920 onto aserver 930 capable of serving the web page. A creator user may alsoinclude one or more hyperlinks in any electronic message allowing anyrecipient equipped with web browsing capability to access the mediafiles. Additionally, a creator user may also include one or moreinstructions in web pages and messages requesting list of hyperlinks tomedia files from the media file server.

According to embodiments, a user using a client computer 940 enabledwith web browsing capability may access 950 a web server 930 anddownload a web page posted by a creator user 960. The web page maycontain one or more hyperlinks to media files. The web page may alsocontain one or more instructions to download a list of hyperlinks tomedia files located on the media file server. Such instructions maycontain one or more list identifiers, or one or more user identifiers.For example, the instructions can cause the browser to connect to themedia file server 970 and request one or more media file lists. Inresponse, the media file server may generate one or more lists ofhyperlinks using information stored in the system database. Thus, aclient browser may receive one or more lists or hyperlinks to mediafiles 990. The hyperlinks are then displayed, enabling users to clickthrough the links and download the media files.

Also, according to embodiments, a user may click through the hyperlinksdisplayed by the web-browsing device 940. Clicking on a hyperlink causesthe browser to connect to the media file server and request a downloadof the media file. The media file server loads the requested media fileinto memory and start sending blocks of data to the client. Uponreceiving data of a given media type, the client browser invokes ahelper application (e.g. plug-in) that is designed to handle thespecific media type. For example, if a user clicks to view a video clip,the browser may invoke a helper application able to play video clips.Likewise, if a user clicks through a hyperlink causing the browser todownload an audio clip, the browser may invoke a helper application thatplays the audio clip.

As described above (FIG. 8), the creator user is able to enterattributes that are associated with the media files. The creator user isalso able to create lists of references to media files. Some listscontain only media file references, other lists may contain referencesto media files and references to other lists, or contain only referencesto other lists. The system combines any type of list with attributesassociated to it to form a logical entity referred to as a “mediagram”.Each mediagram is treated as an atomic unit that can be linked todirectly via a pointer of some type (e.g. a resource locator) on a webpage. In the example given above (FIG. 8), a user may insert a link to amediagram in a message transmitted via the Internet. The receive usermay click through the link to view a list of media files accessible onlyto that receiver user.

The system also utilizes information entities that describerelationships between mediagrams. These relationships may also possessproperties that can be set or modified by the creator user or by thesystem. For example, a relationship may describe the number of timesviewers viewing mediagram “A”, which contains references to media files,clicked through to view a given file. In this example, the relationshipis a number associating a mediagram “A” with mediagram “B”, whichcontains a reference to a single media file and its attributes. Asexemplified here, one can see that such a system facilitates informationmanagement for storing and posting media files on a network. Mediagramscan be represented as database entries or any other type of structure orcontainer capable of holding data. The system propagates new additionsto lists, or changes to attributes made by the creator user to allmediagrams automatically. The system, by way of using associationentities, is able to provide some new properties such as rating,ranking, and/or popularity based on users interaction with the data.

Therefore, a list comprises a unit that can be managed by thecreator-user (or any one else given authorization by the creator-user).Each list comprises a structure that takes on dynamic characteristics asa result of the input provided to the list. The creator-user can controlthe type of content data placed on the list and the users who haveaccess to the list. Only certain type of users, for instance, may beallowed to utilize the list. Each list may comprise content (media data,mediagrams, links, other lists, etc.). In one embodiment of theinvention, a list may contain or refer to other lists thereby creating ahierarchy of interrelated lists where each list has items comprisingcontent data. A parent list, for example, may contain or refer to otherchild-lists that are related to the parent and possibly associated withone another. The contents (e.g., content data) or sequence of the listmay change according to a set of criteria or behaviors (e.g., actionsperformed by users). The criteria or behaviors can be defined by thecreator user although in some instances the criteria may be defined byothers users. If a user selects an item in the list, that action(considered a “vote” for the item) may cause the selected item to ascendin the list because it is considered more popular. When an item isconsidered popular it is displayed in one embodiment of the invention ina more prevalent location than item that are not considered popular.Thus, items that are not popular descend in the list where items thatare popular ascend. The invention contemplates many different activitiesthat can be utilized to gauge popularity. For example, other actions mayalso cause the contents of the list to change. If, for instance a userplaces a link on a web page to a content item on the list that activitymay be viewed as a strong statement that the content item on the list isworthwhile. In one embodiment of the invention, the criteria or behaviorthat moves the location of a content item on the list is defined by thecreator-user. The invention contemplates that such criteria or behaviorsmay comprise any action by a user that expresses an interest ordisinterest in the content item that was selected. Thus, the listcomprises a dynamic environment that changes based on actions performedby users of the list.

FIGS. 10 a and 10 b are flow diagrams that illustrate the process usedto provide an information management system for giving file and filelist rankings, in accordance with an embodiment of the presentinvention. The user defines the parameters of the media file lists atstep 1010. The list definition may comprise list type, displayparameters (e.g. including those for sequential display and navigationdisplay), user access permissions, and automatic media file or mediagrammanagement data (e.g. including archiving deadlines and deletingdeadlines). List definition may also comprise access controls, editingmechanisms, and/or distribution mechanisms. The list type or type oflist displayed can be selected by links from the home page and otherlocations within the system. For instance, a list display may be amulti-level tree structure, a navigation bar, and/or a directed graph.Additionally, the number of entries that each list contains may bedetermined by the creator of the list.

According to an embodiment, at step 1015, media files are associatedwith the list entries by a creator. As a result, media content is storedin database and file records. Media content may be stored in differentdatabases or on different servers. Each piece of media content istreated as an atomic unit (e.g. a media file or mediagram) that can bedirectly linked to via a resource locator (e.g. URL) and served as alink through a page generated from a distribution list. Examples ofmedia content comprise voice messages, Web Clips, pictures, HTML pages,attachments, templates, and imported lists. Templates may be used tocollect and post media file or mediagram entries from a resource locator(e.g. URL) link. Imported lists comprise pointers to distribution listsand individual media files or mediagrams kept in another account.Moreover, the creator of the content can give permission to anothermedia file or mediagram account holder to publish the content on othermedia file or mediagram accounts.

According to an embodiment, at step 1020, the system creates list entryconnections and relationships and stores that data. For instance,connection data collected for the list entry is stored in the systemdatabases. Also, associated rating, ranking, and/or popularity data foreach media file, mediagram, web page, list, and/or list entry can bestored in the same and/or another database.

At step 1025, the list entries may be edited to add, delete or correctlist entries. For instance, the creator of an entry and/or the owner ofa list may have editing capability.

At step 1030, list display, browsing, exporting, and importinginformation functions may be selected. For example, a creator may selectto export a list in order to sharing that list with other media file ormediagram accounts. The creator supplies the system with information onthe user accounts the creator desires to share the list with. Theinformation may include control over the whole list and/or separateoverriding control for each individual media file or mediagram entry.Each media file or mediagram can be placed on multiple lists if desiredto spread content around to various other lists. Access can be grantedthrough static passwords, one-time passwords and digital certificates.

According to embodiments, a database is generated that containsinformation on all links between media files or mediagrams entries andlists. Whenever a creator edits lists, entries, media files ormediagrams, the changes are automatically made in the database andwherever the lists, entries and media files or mediagrams are stored.Also, a creator can request permission from another media file ormediagram account holder to publish content on the other account holdersmedia file or mediagram account. If changes are made to media files ormediagrams that have been published on accounts belonging to others, acreator's changes will also be made in those accounts providing there ispermission for placement of the items in those accounts.

By way of example, assume at step 1030 that an art site exists withstages for poetry, books, music, etc. A poet can request permission forposting of his poems on the poetry stage of the art site. Oncepermission is granted, his poem will appear on the poetry stage and anychanges he subsequently makes to his poem will be automatically madethere as well.

The system processes or performs list display, browsing, export, importand other connection relationship actions and information (e.g.including future actions depending on existing relationships) at step1035. As mentioned above, embodiments provide tracking of associatedrating, ranking, and/or popularity data for each media file, mediagram,web page, list, and/or list entry displayed or browsed by users andcreators via selection, click through, activation, or various otherappropriate systems.

At step 1040, the system notifies selected users, creators, list ownersand managers about the existence and availability of lists. When achange is made to a list, media file or mediagram, notification can besent by email or other delivery method (e.g. pagers and/or automatedtelephone calls). Thus, system users and creators have the opportunityto subscribe to or remove themselves from a subscription list.

According to an embodiment, at step 1045, a user may request lists fromthe system. The system allows for there to be lists of lists, thus listsmay be multilevel or nested so that selection of an entry on one listcauses a more detailed list for that entry to be displayed. The user mayexport the list if he has permission. The system may detect exportationof a list and keep a record of the exportation.

For example a creator could ask for permission to post to a second listowned by another by sending an email to the owner of the second listrequesting authorization for the post, or for all posts from thatcreator (note that a system user can be a creator and/or list owner).Then, the owner of the second list could give authorization by checkinga box in the email, by clicking a button, or other methods. Also,creators and/or list owners could join clubs or groups having certaindistribution or listing rights.

According to an embodiment, a user may requests the data associated witha list entry, for example by clicking on that entry, at step 1050. Aftera user selects or requests a media file associated with a list entry,the system processes the user's request and provides the data associatedwith the list entry to the user and will make an entry in the associatedratings database increasing the rating for that media file 1055.Additionally, embodiments provide tracking of associated rating,ranking, and/or popularity data for each media file, mediagram, and/orlist entry for which data is requested by users and creators viaselection, click through, activation, or various other appropriatesystems.

For example, the system will provide the media file selected to thecomputer or device the user has accessed the system server from andincreases the rating for that media file. As noted earlier, media filedata may comprise audio and visual data, attachments, documents andother items. If the media data file selected is owned by someone otherthan the list owner of the list the file is displayed on, then the filewill only be retrieved if permission for listing by the list accountholder and retrieval by the retrieving user has been obtained from thefile owner account.

Embodiments provide tracking of associated rating, ranking, and/orpopularity data for each media file, mediagram, and/or list entry that acreator or list owner desires. Thus, a user can be presented with apopularity ranking of a list or list entry in order to assist inselection (e.g. steps 1045 1055). Rating, ranking, and/or popularitydata can be obtained by system comprising (1) counting the number ofclick-throughs from one list to another, (2) by counting the number ofinclusions of a media file, mediagram, lists in another account holder'slist, (3) by a count of the number of subscriptions to a list and (4) byvarious other appropriate systems or means that the creator, user, orsystem may desire. For example, ranking information may comprise a countof subscriptions to a list and/or a count for each of the entries of asubscribed to list. A creator or user may determine the type ofinformation provided. For example, rankings can be displayed inchronological order, by popularity, title, creator, or as otherwisedesired.

According to an embodiment, at step 1060, the system accumulates thetracking of associated rating, ranking, and/or popularity data describedabove. At step 1065, the system ranks the popularity or usage of theentry (e.g. rating, ranking, and/or popularity data) and stores thisinformation in a database for access by the user at step 1055 or byothers. For instance, according to an embodiment, at step 1070, thesystem provides detailed popularity or usage information to creators andothers permitted by the creator to view such information such as systemusers, list owners, and managers. The creator determines the type ofdata provided and its availability.

FIG. 11 is a block diagram that illustrates representation ofinformation mediagrams used in the invention, in accordance with anembodiment of the present invention. A Mediagram is an atomic unitcontaining a list of attributes that characterize the mediagram, andlists of references to media files and/or reference to other mediagrams.For example, mediagram 1110 contains a list of attributes, a referenceto a list and references to media files. Mediagram 1150 is similar to1110 in that it has a list of attributes but is different in that it hasonly one list of media files. A third type of mediagram is 1130. In thisexample, this mediagram associates mediagrams 1110 and 1150. It storesassociation attributes and the list of associated elements. Theassociation is represented by 1120 and 1140.

In addition to the lists and processes explained above, embodiments ofthe invention comprise additional sections to the existing media file ormediagram content collection system. For example, additional sectionsmay be added to the content distribution lists which are used forassembling and managing the display and distribution of media file ormediagram content. Thus, the additional sections allow each mediagram tobe assigned to an arbitrary number of content distribution lists and theresulting lists of mediagrams or nested content distribution lists (e.g.“sub-lists”) are stored as database records. Such distribution listsfall into 3 categories.

The first category is navigation pages. For example, navigation pagesmay use a three frame display (or simulated frames, depending onimplementation), a header frame, a navigation frame and a content frame.The title of the mediagram or sub-list is displayed in the navigationframe and the content of the currently selected list entry in a contentframe. The second category is Display Pages. For example, there is asingle display area (no frames) with the header at the top followed bythe display content of each mediagram in the list. The third category issingle entry pages. For example, this type is for when the user wants todistribute a single mediagram using the distribution list processingfeatures (such as sharing lists with other accounts). In this case thereis no header, only the display content for the single mediagram in thelist is shown.

In additional embodiments, the distribution lists may have a listdefinition that gives list types including navigation pages, displaypages, and single entry pages. Also, the distribution list may include alist display header (e.g. a header specified in same manager asmediagrams). In addition, the distribution list exporting may includecontrol of access for all entries on the list. For example, for thisreason, users will have to use single entry lists to have granulardistribution control over individual mediagrams. List exporting mayspecify a distribution list for user to access as a click-through pointfrom the exported list. Here, the purpose is to provide an entry pointfrom an aggregated collection of content to content at this specificaccount. Thus, it fits in with the calculation of relative popularity.Moreover, the list exporting may grant access via manual evaluation, orvarious other techniques as appropriate.

In additional embodiments, the distribution lists may have a popularityranking where the relative rank of popularity is based on the items ineach list. For example, each mediagram and distribution list contains anumeric count of popularity. The rank is the relative popularity withineach list. Popularity count values have no absolute meaning and may beconcealed from user in final implementation. For example, if a listcontains an entry that is extremely popular in some other list, but isunpopular on this list, the system may display the overall rating(including counts both lists), or the system may just rank relative tothis particular list (e.g. according to click-throughs from this listonly), or some combination. Additional embodiment contemplate popularityranking by various other empirical and statistical methods.

Additional embodiments of the invention comprise content automationlists (e.g. content “Wizards” or “Templates”). These types of lists orwizards contain sequential steps that guide the user through thegeneration of mediagram content and the assembly of that content intothe distribution lists. An example of an automation lists may includevarious features and information, such as a list definition having useraccessed permissions (e.g. passwords) and automation step list.Automation step lists can include lists of each step to generate themediagram content and place it in the appropriate distribution listwhere each entry contains a mediagram type to collect or a DistributionList where the content will be deposited. Automation step lists can alsoinclude default values for each field of the mediagram or list that arehardcoded into the step, or inserted based on form entries requestedfrom the user. Such version may not have programming, but that could beadded (such as VB code to handle more complex steps). Moreover, theaccount user can use the automation lists to simplify routine productionprocesses. Finally, just like all other lists in the system, the accountowner has the ability to link the automation list into another HTMLpage. Traversing this link will invoke the steps of the automation list.This is extremely important, as it provides for the automated collectionand distribution from any page on the Internet that contains the link.

Additional embodiments of the invention comprise content packagingtechnology. For example, packed into a single file would be all of thefiles of a web page or set of pages. This single file could then bedownloaded and viewed offline, and passed around intact, thus, allowingfor an application where the distribution lists provide a mechanism forspecifying what would be packed into one of the self-contained singlefiles. The distribution list could also provide the underlying controlstructures for managing access and distribution to the single files. Forexample, if the content creator chose, a distribution list could bepacked into a single file and downloaded to users, instead of beingserved in real time. If the user volunteers, their computer could act asa distribution point for the file, forming the basis for a peer-to-peercontent distribution system. Additional embodiments of the inventioncomprise combining the elements and processes above to create a systemfor distributing original content by tapping into the spare bandwidth ofthe volunteer computers to distribute multimedia websites for a muchlower cost than using a centralized system.

The invention also contemplates embodiments wherein the media comprisesaudio, video, display, photo, spread sheet, database, octal,programming, object oriented programming, message, email, attachment,word processing, textual, figure, drawing, network browser, networkresource locator, network link, web site, web page, web content, programapplication, program plug-in, java page, java programming, objectoriented programming, and/or any combination thereof.

Additionally, the invention contemplates embodiments wherein the mediacomprises various functionalities applicable to the desired media as setforth above. For example, an embodiment contemplates sound, video,icons, active icon, text scrolling, hotlink, embedded link, and othermedia functionality as appropriate. Additionally, once the presentationhas been finalized, the creator would like to be able to transmit eitherthe presentation or voice messages to selected members of an audience bye-mail. Finally, a creating user might wish to use these files toprovide programming material for an Internet Radio Station.

Similarly, the invention contemplates application to various otherappropriate telecommunications, data communications, and signaltransmission systems and environments where a plug-in at one location ordevice can be used to record information to be uplinked to anotherlocation or device using other networks such as wireless networks,satellite networks, RF networks, coax cable, fiber optic cable,satellite links, cell links, radio waves, etc.

The computer systems, networks, programming, and processes describedabove are for purposes of example only. An embodiment of the inventionmay be implemented in any type of computer system or programming orprocessing environment. Furthermore, any and all of the above mentionedmethods, products, and/or embodiments may be used separately orintegrated with any and/or all of the others.

Thus, a method, apparatus, and system for creating and posting media hasbeen described. Although the present invention has been described indetail with reference to particular embodiments, persons possessingordinary skill in the art to which this invention pertains willappreciate that various modifications and enhancements may be madewithout departing from the spirit and scope of the claims that follow.Hence, particular embodiments described herein are illustrative only andshould not limit the present invention thereby. The invention is definedby the claims and their full scope of equivalents.

Although the invention herein has been described with reference toparticular embodiments, it is to be understood that these embodimentsare merely illustrative of the principles and applications of thepresent invention. It is therefore to be understood that numerousmodifications may be made to the illustrative embodiments and that otherarrangements may be devised without departing from the spirit and scopeof the present invention as defined by the following claims.

I claim:
 1. A system, comprising: a first computer configured to receiveand store media content comprising media data for distribution to atleast one second computer remote from said first computer, create aplurality of dynamic lists, each comprising a plurality of first listitems which are arranged in a dynamically modifiable order, saiddynamically modifiable order being changeable in response to an additionof a new list item to said plurality of dynamic lists, add at least onefirst reference to said media content to a first dynamic list of saidplurality of dynamic lists, and enable access to said first dynamic listby at least one first user of said second computer in accordance withsharing information provided by a second user of said first computer;wherein at least one of said plurality of dynamic lists comprises ahierarchy of said plurality of dynamic lists that are interrelated, saidhierarchy being navigable by said second user wherein said secondcomputer is configured to receive at least one dynamic list of saidplurality of dynamic lists from said first computer, display saidreceived dynamic list to said first user, receive a user input selectinga list item of said received dynamic list containing a reference to saidmedia data, download said media data in response to the reception ofsaid user input; and wherein said second computer is further configuredto receive a notification that said media data has been changed,download said media data which has been changed in response to thereception of said notification, and notify said first user that saidmedia data which has been changed has been downloaded.
 2. The systemaccording to claim 1, wherein said media data comprises at least one ofaudio data, video data, photographic data, textual data, database data,web content data, and programming code data.
 3. The system according toclaim 1, wherein at least one of said plurality of dynamic listscomprises content obtained by said first computer based on pre-definedcriteria.
 4. The system according to claim 3, wherein said pre-definedcriteria comprises at least one of a user behavior criteria, a categorycriteria, and a ranking criteria.
 5. The system according to claim 3,wherein said pre-defined criteria comprises at least one of a userbehavior criteria, a category criteria, and a ranking criteria.
 6. Thesystem according to claim 1, wherein at least a second dynamic list ofsaid plurality of dynamic lists comprises a mediagram.
 7. The systemaccording to claim 6, wherein said first computer is further configuredto receive a changed version of said second dynamic list and store saidchanged version of said second dynamic list in a data store thereof. 8.The system according to claim 1, wherein said first computer is furtherconfigured to communicate media data parameters to said second computer,said media data parameters indicating data formats that are supported bysaid first computer.
 9. The system according to claim 1, wherein saidfirst computer is further configured to communicate information to saidsecond computer for enabling said second computer to obtain informationspecifying at least one media attribute associated with said media data,and obtain information requesting that said media content be shared withat least one other device.
 10. The system according to claim 1, whereinsaid first computer is further configured to compute popularity data forsaid media content based on user behavior, and create a second dynamiclist comprising at least one second reference to said media content anda ranking of said media content based on said popularity data.
 11. Thesystem according to claim 1, wherein said first computer is furtherconfigured to receive authorization from said first user to reference animport list comprising a plurality of second list items in a seconddynamic list, and generate said second dynamic list containing at leastsaid reference to said import list and being automatically modifiable inresponse to changes in said import list.
 12. The system according toclaim 11, wherein said first computer is further configured to add atleast one of a plurality of second list items to said second dynamiclist.
 13. The system according to claim 11, wherein said reference tosaid import list is added to said second dynamic list in response to aselection of said reference to said import list by said second user. 14.The system according to claim 1, wherein said first computer is furtherconfigured to generate a distribution list comprising export controldata and a reference to at least one dynamic list of said plurality ofdynamic lists that are to be exported to an external device, export saiddynamic list referenced in said distribution list, and add a referenceto said exported dynamic list to a second dynamic list in accordancewith said export control data, said second dynamic list beingdynamically modifiable in response to changes in said exported dynamiclist.
 15. The system according to claim 1, wherein at least one item ofsaid plurality of first list items comprises a reference to ahierarchical list.
 16. The system according to claim 15, wherein areference to said media data is retrievable by traversing saidhierarchical list.
 17. A system, comprising: a first computer configuredto receive and store media content comprising media data fordistribution to at least one second computer remote from said firstcomputer, create a plurality of dynamic lists, each comprising aplurality of first list items which are arranged in a dynamicallymodifiable order, said dynamically modifiable order being changeable inresponse to an addition of a new list item to said plurality of dynamiclists, add at least one first reference to said media content to a firstdynamic list of said plurality of dynamic lists, and enable access tosaid first dynamic list by at least one first user of said secondcomputer in accordance with sharing information provided by a seconduser of said first computer; wherein at least one of said plurality ofdynamic lists comprises a hierarchy of said plurality of dynamic liststhat are interrelated, said hierarchy being navigable by said seconduser; wherein at least a second dynamic list of said plurality ofdynamic lists comprises a mediagram; wherein said first computer isfurther configured to receive a changed version of said second dynamiclist and store said changed version of said second dynamic list in adata store thereof; and wherein said changed version of said seconddynamic list comprises at least one changed media attribute associatedwith media data referenced by said second dynamic list.
 18. The systemaccording to claim 1, wherein said first computer is further configuredto generate a second dynamic list comprising a reference to at least afirst set of said media data and at least one media attribute associatedwith said first set of media data, and communicate said second dynamiclist to said second computer.
 19. The system according claim 1, whereinsaid second computer is configured to receive said media content, andcommunicate said media content to at least one third computer, saidthird computer being a peer-to-peer computer or an offline playbackclient computer.
 20. The system according to claim 17, wherein saidfirst computer is further configured to compute popularity data for saidmedia content based on user behavior, and create a second dynamic listcomprising at least one second reference to said media content and aranking of said media content based on said popularity data.
 21. Thesystem according to claim 17, wherein said first computer is furtherconfigured to receive authorization from said first user to reference animport list comprising a plurality of second list items in a seconddynamic list, and generate said second dynamic list containing at leastsaid reference to said import list and being automatically modifiable inresponse to changes in said import list.
 22. The system according toclaim 21, wherein said first computer is further configured to add atleast one of a plurality of second list items to said second dynamiclist.
 23. The system according to claim 21, wherein said reference tosaid import list is added to said second dynamic list in response to aselection of said reference to said import list by said second user. 24.The system according to claim 17, wherein said first computer is furtherconfigured to generate a distribution list comprising export controldata and a reference to at least one dynamic list of said plurality ofdynamic lists that are to be exported to an external device, export saiddynamic list referenced in said distribution list, and add a referenceto said exported dynamic list to a second dynamic list in accordancewith said export control data, said second dynamic list beingdynamically modifiable in response to changes in said exported dynamiclist.
 25. The system according to claim 17, wherein at least one item ofsaid plurality of first list items comprises a reference to ahierarchical list.
 26. The system according to claim 25, wherein areference to said media data is retrievable by traversing saidhierarchical list.
 27. The system according to claim 17, wherein saidsecond computer is configured to receive at least one dynamic list ofsaid plurality of dynamic lists from said first computer, display saidreceived dynamic list to said first user, receive a user input selectinga list item of said received dynamic list containing a reference to saidmedia data, download said media data in response to the reception ofsaid user input.
 28. The system according to claim 27, wherein saidsecond computer is further configured to receive a notification thatsaid media data has been changed, download said media data which hasbeen changed in response to the reception of said notification, andnotify said first user that said media data which has been changed hasbeen downloaded.
 29. The system according to claim 17, wherein saidmedia data comprises at least one of audio data, video data,photographic data, textural data, database data, web content data, andprogramming code data.
 30. The system according to claim 17, wherein atleast one of said plurality of dynamic lists comprises content obtainedby said first computer based on pre-defined criteria.
 31. The systemaccording to claim 17, wherein said first computer is further configuredto generate a second dynamic list comprising a reference to at least afirst set of said media data and at least one media attribute associatedwith said first set of media data, and communicate said second dynamiclist to said second computer.
 32. The system according claim 17, whereinsaid second computer is configured to receive said media content, andcommunicate said media content to at least one third computer, saidthird computer being a peer-to-peer computer or an offline playbackclient computer.
 33. The system according to claim 17, wherein saidfirst computer is further configured to communicate media dataparameters to said second computer, said media data parametersindicating data formats that are supported by said first computer. 34.The system according to claim 17, wherein said first computer is furtherconfigured to communicate information to said second computer forenabling said second computer to obtain information specifying at leastattribute associated with media data, and obtain information requestingthat said media content be shared with at least one other device.
 35. Asystem, comprising: a first computer configured to receive first mediacontent comprising at least one of audio data, video data, photographicdata, textual data, database data, web content data, programming codedata and at least one reference to second media content, add first mediadata to a first ordered list, said first media data comprising at leastone reference to said first media content and a first set of mediaattributes, and communicate said first ordered list to a secondcomputer; said second computer configured to receive said first orderedlist from said first computer, display said first ordered list to a userthereof, receive a first user input selecting a first list item of saidfirst ordered list comprising a reference to said first media data,download said first media data and said first media content in responseto the reception of said first user input, obtain a notification thatsaid first media data has been modified, download said first media datawhich has been modified in response to said notification, generate adistribution list providing an underlying control structure for managingaccess and distribution of said first media data to at least one thirdcomputer, and communicate said reference to said first media data tosaid third computer; and said third computer configured to receive saidreference to said first media data, add to a second ordered list saidreference to said first media data, receive a second user inputproviding permission to allow access by at least one fourth computer tosaid first media content referenced by said first media data, andcommunicate said reference to said first media data to said fourthcomputer in response to the reception of said second user input.
 36. Asystem, comprising: a first computer configured to receive and storemedia content comprising media data for distribution to at least onesecond computer remote from said first computer, wherein said mediacontent comprises at least one of audio data, video data, photographicdata, textual data, database data, web content data, programming codedata, and at least one reference to second media content, create aplurality of dynamic lists, each comprising a plurality of first listitems which are arranged in a dynamically modifiable order, saiddynamically modifiable order being changeable in response to an additionof a new list item to said plurality of dynamic lists, enable access byat least one second computer to at least one of said plurality ofdynamic lists in accordance with system or user determined permissions,add at least one first reference to said media content to a firstdynamic list of said plurality of dynamic lists, add at least onereference to said first dynamic list to a second dynamic list of saidplurality of dynamic lists, wherein said first dynamic list and saidsecond dynamic list comprise a hierarchy of interrelated dynamic lists,said hierarchy being navigable by said at least one second user of saidsecond computer, compute popularity data for said media content based onuser behavior, create a third dynamic list of the plurality of dynamiclists comprising at least one second reference to said media content anda ranking of said media content based on said popularity data, and addat least one of a plurality of second list items to a fourth dynamiclist of the plurality of dynamic lists in response to a selection bysaid second user of said second computer; said second computerconfigured to receive at least one dynamic list of said plurality ofdynamic lists from said first computer, display said received dynamiclist to said first user, receive a user input selecting a list item ofsaid received dynamic list containing a reference to said media data,download said media content in response to the reception of said userinput, and communicate said media content to at least one third computeridentified in a distribution list, said third computer being a peercomputer or an offline playback client computer.
 37. The systemaccording to claim 36, wherein said first computer is further configuredto generate a distribution list comprising export control data and areference to at least one dynamic list of said plurality of dynamiclists that are to be exported to an external device, export said dynamiclist referenced in said distribution list, and add a reference to saidexported dynamic list to a second dynamic list in accordance with saidexport control data, said second dynamic list being dynamicallymodifiable in response to changes in said exported dynamic list.
 38. Thesystem according to claim 36, wherein said second computer is furtherconfigured to receive a notification that said media content has beenchanged, download said media content which has been changed, and notifysaid second user of said second computer that said media content hasbeen changed.